package com.fishingwithme.domain;

import com.fishingwithme.infrastructure.dtos.circle.CityDto;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

public interface CityService {
    List<CityDto> getAllCities();

    void refreshCityData();

    List<CityDto> searchCities(String keyword);
    
    /**
     * 分页查询城市代码列表
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 分页城市列表
     */
    IPage<CityDto> getCitiesByPage(Integer pageNum, Integer pageSize);
    
    /**
     * 分页查询城市代码列表，支持按城市名称搜索
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param cityName 城市名称搜索关键词
     * @return 分页城市列表
     */
    IPage<CityDto> getCitiesByPageAndSearch(Integer pageNum, Integer pageSize, String cityName);
    
    /**
     * 添加新城市
     * @param cityDto 城市信息对象
     * @return 添加结果，true表示成功
     */
    boolean addCity(CityDto cityDto);
}